

using System;
using System.Collections.Generic;
using IBS.Model;

namespace IBS.ServiceContracts
{
    public interface ITransferService
    {
        void Wait();

        IList<Transfer> GetTransfers(Func<Transfer, bool> criteria = null, int?page = null);
        IList<Transfer> GetCardTransfers(string cardNumber, Func<Transfer, bool> criteria = null, int? page = null);

   
        Transfer Transfer(Card fromCard, Card toCard, decimal amount, string ISO, string userName);

        Transfer Transfer(Card fromCard, Account toAccount, decimal amount, string ISO, string userName);

        Transfer Deposit(Card card, decimal amount);

        Transfer Withdraw(Card card, decimal amount);

        Transfer PayPayment(Card fromCard, Payment payment, string paymentDetail, decimal amount, string ISO, string useName);

        void PayAutoPayment(Card fromCard, AutoPayment toAutoPayment, string paymentDetail, string ISO, decimal amount);
    }
}